草庐IT

Gorilla mux 调用不正确的处理程序?

全部标签

ruby - 在 Heroku 中的 Puma 上部署 Rails 应用程序时出错

我正在尝试部署在Puma和jruby上运行的Rails应用程序。Procfile如下web:bundleexecpuma-Cconfig/puma.rb-p$PORT-e$RACK_ENVPuma的配置放在config/puma.rbifENV['RACK_ENV']!='production'||ENV['RAILS_ENV']!='production'workersInteger(ENV['PUMA_WORKERS']||4)endthreadsInteger(ENV['MIN_THREADS']||1),Integer(ENV['MAX_THREADS']||4)rackupD

ruby-on-rails - 在 Rails 4 中组织外部 API 调用 - 模块还是类?

我正在创建一个Rails应用程序,它将使用相当多的外部API,例如SalesForce、FolderGrid(如Dropbox)等,它们都会同步到我的数据库。我从来没有使用过外部api调用,所以我创建了一些基本的Ruby脚本和分散的方法来测试对这些资源的调用。现在我想用我的完整Rails应用程序来实现它们。到目前为止,我首先在我的/lib文件夹中创建一个目录来保存api调用模块/类。/lib/apis/foldergrid.rb现在我不确定组织代码的最佳方法是什么。在我的独立Ruby脚本中,我有用于身份验证、创建文件夹、审核文件、下载文件等的方法。模块中应该包含什么?我什至需要一个模块

ruby - 为什么方法调用在原则上可以是常量时需要消除歧义?

方法调用通常可以省略接收者和参数的括号:deffoo;"foo"endfoo#=>"foo"在上面的例子中,foo在方法调用和对潜在局部变量的引用之间是不明确的。在没有后者的情况下,它被解释为方法调用。但是,当方法名原则上可以是常量名时(即,当它以大写字母开头,并且仅由字母组成时),似乎需要消歧。defFoo;"Foo"endFoo#=>NameError:uninitializedconstantFooFoo()#=>"Foo"self.Foo#=>"Foo"为什么会这样?为什么即使在没有同名常量的情况下,也需要明确区分方法调用和对常量的引用? 最佳答案

ruby-on-rails - 收集 Rails 应用程序使用统计信息的最佳方式

我有一个Rails应用程序,用户可以在其中设置他们的域并在其中发布内容。我需要收集公共(public)流量统计信息,例如网页浏览量等。此功能的一个很好的例子是我作为客户可以看到的flickr使用统计信息。问题是收集使用信息的最佳方式是什么。应该通过解析日志文件来完成还是应该在运行时收集并存储在数据库中?是否有任何工具或Rails插件已经提供了此功能?此解决方案应该可以很好地扩展,即使每月有数千个域和数百万次网页浏览。 最佳答案 GoogleAnalytics可能是您最好的选择... 关于

ruby - 在 Ruby 中获取调用者的模块

我们有代码在我们的Ruby1.8.6网络应用程序中记录数据。你大致这样调用它:$log.info("Sometexthere")现在,在记录的输出中,我想包括该行出现的模块。我知道Kernel#caller会给我一个数组,我可以在其中提取日志行出现的文件和行号,但我不希望这样。我想要模块,而不是文件名。显而易见的解决方案是修改日志行,使其如下所示:$log.info("Sometexthere",self.class.name)然后解析结果。不过,这行不通,因为我试图在默认情况下提取此信息。也就是说,如果程序员忘记指定模块(日志行的第二个参数),我需要解决方案。有什么办法吗?如果没有,

ruby - Sinatra 应用程序中的错误 "undefined local variable or method ` logger '"when using ` logger.info`

我有以下Sinatra1.2.1应用程序代码:#app.rbrequire'sinatra'get'/'dologger.info"COUCOU"'Helloworld!'end并使用ruby-rubygemsapp.rb启动服务器。当我转到http://localhost:4567时出现错误:NameErrorat/undefinedlocalvariableormethod`logger'for#file:app.rblocation:blockinline:4我是否需要添加或配置一些东西才能在Sinatra中启用日志记录?阅读SinatraREADME和文档,似乎默认情况下为Si

nbsp 的 Ruby 正则表达式处理

在ruby​​1.9.3中,正则表达式引擎不会将nbsp的(\u00A0)视为空格(\s)。这对我来说常常是一个无赖。所以我的问题是,这会在2.0中改变吗?如果没有,是否有任何方法可以修补解决方案? 最佳答案 使用Unicode属性(你需要声明一个匹配的源代码编码才能工作):#encoding=utf-8ifsubject~=/\p{Z}/#subjectcontainswhitespaceorotherseparators或使用POSIX字符类:ifsubject~=/[[:space:]]/根据thedocs,\s现在和将来只会

L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误

废话不多先看bug解决方案在下面!!!!启动服务查看服务是否开启首先我的电脑-右键-管理-服务和应用程序-服务-找到IPsecPolicyAgent-右键属性-启动方式改为自动,并重启服务,如下图打开设置-更改适配器选项如下图点击连接失败的连接-右键-属性-安全-允许使用这些协议编辑注册表按Ctrl+R打开命令行窗口输入regedit打开注册表输入下面命令进入以下页面HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters如下图在右侧编辑菜单上,鼠标右键新建,然后单击DWORD(32)位值。键入Prohibit

ruby - 当类的任何其他方法被调用时如何调用类的方法 (Ruby)

在Ruby中,有没有办法在调用类的任何其他方法时调用方法?例如,classCardefrepairputs"Repaired!"enddefdrive#contentenddefcheckup#contentendend在这个例子中,如果我在Car的实例上调用任何方法,我应该总是调用repair方法。我如何在Ruby中执行此操作?注意:我也确实想要在内置方法中调用repair,比如Carinstance.class也应该调用repair。 最佳答案 我假设您希望在每个Car的其他实例方法返回后调用Car#repair。我看到您添加了

ruby - 使用 Minitest::Mock 验证从未调用过或仅调用过一次的方法

有什么方法可以使用Minitest::Mock验证从未调用过或仅调用过多次的方法提前致谢 最佳答案 具体次数:Minitest::Mock强制开发人员明确消息预期,因此如果您希望给定方法被调用x次,您需要非常直白。my_mock=Minitest::Mock.newx.times{my_mock.expect:some_method,:return_val}从未调用过:从哲学上讲,Minitest避免测试没有发生的事情。虽然不完全相似,但请查看thispost或谷歌“minitestassertnothingraised”。Mini